/**
 * 页面的启动方法
 *
 */
function onload() {
    wps.ApiEvent.AddApiEventListener("WindowActivate", onDocActiveChange) //当前文档切换后的事件回调通知
    if (typeof (wps.Enum) != "object") { // 如果没有内置枚举值
        wps.Enum = WPS_Enum
    }
    getContentControls()
}

/**
 * 当前文档切换到其它文档时， 重新获取新的文档的内容控件
 *
 * @param {*} doc
 * @param {*} docwin
 */
function onDocActiveChange(doc, docwin) {
    clearContentControls()
    getContentControls()
}

/**
 * 清空内容控件的列表
 *
 */
function clearContentControls() {
    document.getElementById('contentControlsDiv').innerHTML = ''
}
/**
 * 获取内容控件的列表
 *
 */
function getContentControls() {
    //设置活动文档对象
    let l_doc = wps.WpsApplication().ActiveDocument
    if (!l_doc) {
        return
    }
    //获取活动文档的所有内容控件List
    let l_doc_controls = l_doc.ContentControls
    document.getElementById('contentControlsDiv').innerHTML = ""
    let innerHtml = ""
    innerHtml = "<table border='1'><tr><th>控件名称</th><th>控件内容</th><th>操作</th></tr>"
    let l_doc_controls_count = l_doc_controls.Count
    for (let i = 1; i <= l_doc_controls_count; ++i) {
        let l_doc_control = l_doc_controls.Item(i)
        let l_doc_control_title = l_doc_control.Title
        let l_doc_control_text = l_doc_control.Range.Text
        innerHtml = innerHtml + "<tr>" +
            "<td width='15%'><li onclick=\"contentControlClick(" + i + ")\")>" + l_doc_control_title + "</li></td>" +
            "<td><input  id='cc_" + i + "' value=" + l_doc_control_text + " style='width:100%;height:100%;'></input></td>" +
            "<td width='8%'><button onclick=\"ccSetValue(" + i + ")\")>" + "设置" + "</button></td>" +
            "</tr>"
        // innerHtml = innerHtml + "<li class='li' onclick=\"bookMarkClick('" + l_doc_control_title + "')\">" + l_doc_control_title +
        //     "</li>"
    }
    innerHtml = innerHtml + "</table>"

    document.getElementById('contentControlsDiv').innerHTML = innerHtml
}
/**
 * 点击内容控件标题做定位
 *
 * @param {*} bookMarkName
 */
function contentControlClick(ccIndex) {
    let l_doc = wps.WpsApplication().ActiveDocument
    if (!l_doc)
        return
    let l_doc_control = l_doc.ContentControls.Item(ccIndex)
    if (l_doc_control)
        l_doc_control.Range.Select()
}
/**
 * 点击内容控件设置做内容替换
 *
 * @param {*} ccIndex
 */
function ccSetValue(ccIndex) {
    let l_doc = wps.WpsApplication().ActiveDocument
    let l_doc_cc_value = document.getElementById("cc_" + ccIndex).value
    if (!l_doc)
        return
    let l_doc_control = l_doc.ContentControls.Item(ccIndex)
    if (l_doc_control)
        l_doc_control.Range.Text = l_doc_cc_value
}